<?php

use Illuminate\Support\Facades\Route;

Route::group([
    'prefix' => '/user',
], function () {

    // 登录页面 [指定名称,重定向登录时防止报错]
    Route::get('/login', "\\App\\Admin\\Controllers\\User\\LoginController@index")->name('login');
    // 登录提交
    Route::post('/login', "\\App\\Admin\\Controllers\\User\\LoginController@login");

});

// 需要登录才能访问的页面
Route::group([
    'middleware' => 'auth:admin',
    'where' => [
        'user' => '\d+',
        'role' => '\d+',
        'permission' => '\d+',
    ],
], function () {

    // 首页
    Route::get('/home', "\\App\\Admin\\Controllers\\HomeController@index");

    // 登出行为
    Route::get('/user/logout', "\\App\\Admin\\Controllers\\User\\LoginController@logout");

    // 文章管理
    Route::group([
        'prefix' => '/posts',
        'middleWare' => ['can:post'],
    ], function () {
        // 列表页面
        Route::get('/', "\\App\\Admin\\Controllers\\PostController@index");
        // 审核操作
        Route::post('/{post}/status', "\\App\\Admin\\Controllers\\PostController@status");
    });

    // 管理用户模块
    Route::group([
        'prefix' => '/users',
        'middleWare' => ['can:system'],
    ], function () {
        // 列表页面
        Route::get('/', "\\App\\Admin\\Controllers\\User\\UserController@index");
        // 创建用户页面
        Route::get('/create', "\\App\\Admin\\Controllers\\User\\UserController@create");
        // 创建用户行为
        Route::post('/', "\\App\\Admin\\Controllers\\User\\UserController@store");
        // 保存用户角色页面
        Route::get('/{user}/roles', "\\App\\Admin\\Controllers\\User\\UserController@roles");
        // 保存用户角色行为
        Route::post('/{user}/roles', "\\App\\Admin\\Controllers\\User\\UserController@storeRoles");
    });

    // 管理角色模块
    Route::group([
        'prefix' => '/roles',
        'middleWare' => ['can:system'],
    ], function () {
        // 列表页面
        Route::get('/', "\\App\\Admin\\Controllers\\User\\RoleController@index");
        // 创建角色页面
        Route::get('/create', "\\App\\Admin\\Controllers\\User\\RoleController@create");
        // 创建角色行为
        Route::post('/', "\\App\\Admin\\Controllers\\User\\RoleController@store");
        // 保存角色权限页面
        Route::get('/{role}/permissions', "\\App\\Admin\\Controllers\\User\\RoleController@permissions");
        // 保存角色权限行为
        Route::post('/{role}/permissions', "\\App\\Admin\\Controllers\\User\\RoleController@storePermissions");
    });

    // 管理权限模块
    Route::group([
        'prefix' => '/permissions',
        'middleWare' => ['can:system'],
    ], function () {
        // 列表页面
        Route::get('/', "\\App\\Admin\\Controllers\\User\\PermissionController@index");
        // 创建权限页面
        Route::get('/create', "\\App\\Admin\\Controllers\\User\\PermissionController@create");
        // 创建权限行为
        Route::post('/', "\\App\\Admin\\Controllers\\User\\PermissionController@store");
    });

    // 专题管理
    Route::group(['middleWare' => 'can:topic'], function () {
        Route::resource('topics', "\\App\\Admin\\Controllers\\TopicController",
            ['only' => ['index', 'create', 'store', 'destroy']]
        );
    });

    // 通知管理
    Route::group(['middleWare' => 'can:notice'], function () {
        Route::resource('notices', "\\App\\Admin\\Controllers\\NoticeController",
            ['only' => ['index', 'create', 'store']]
        );
    });

});


